// src/api/api.js
import axios from 'axios';

const http = axios.create({
  baseURL: 'http://localhost:8080',
  timeout: 1000,
});

// 请求拦截器
http.interceptors.request.use(
  config => {
    // 在发送请求之前做些什么，比如设置token
    // config.headers['Authorization'] = `Bearer ${yourAuthToken}`;
    return config;
  },
  error => {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

// 响应拦截器
http.interceptors.response.use(
  response => {
    // 对响应数据做点什么
    return response;
  },
  error => {
    // 对响应错误做点什么
    if (error.response) {
      // 服务器返回的状态码不是2xx的响应处理
      console.error('服务器错误:', error.response.status);
      console.error('响应数据:', error.response.data);
    } else if (error.request) {
      // 请求已发出，但没有收到响应
      console.error('没有响应:', error.request);
    } else {
      // 发生了触发请求错误的问题
      console.error('错误:', error.message);
    }
    return Promise.reject(error);
  }
);

export default http;
export let request;
request = (url, method, params) => {
  switch (method.toLowerCase()) {
    case 'get':
      return http.get(url, {params});
    case 'post':
      return http.post(url, params);
    case 'delete':
      return http.delete(url, {params});
    case 'put':
      return http.put(url, params);
    case 'patch':
      return http.patch(url, params);
    default:
      return Promise.reject(new Error('Unsupported method: ' + method));
  }
};
